# Author : Lzhiyu
# 时间 : 2021/10/3 16:56
# 项目名称 : week05作业
# Software: PyCharm

# week05作业：week05课堂笔记+自己的小练习

## 用户输入和格式化打印

name = input("姓名: ")
age = input("年龄: ")
job = input("工作: ")
salary = input("工资: ")

# name 动态的出现在字符串中,字符串的拼接 用 "+" 符号来拼接
info = '''---------INFO '''+name+'''---------
姓名:'''+name+'''
年龄:'''+age+'''
工作:'''+job+'''
工资:'''+salary

print(info)

# 优化字符串拼接：占位符 %s 动态的数据-->变量
# 优势：1.全部都写在一个大的字符串里面了
#      2.省略了 “+”符号
# 缺点： 如果有几百个需要填进去的内容，容易顺序乱掉！出现打印结果的不正确

info_占位符 = '''---------INFO %s---------
姓名：%s
年龄：%s
工作：%s
工资：%s''' %(name,name,age,job,salary)

print(info_占位符)

# 优化： .format() 格式化 字符串
info_format = '''---------INFO {姓名}---------
姓名:{姓名}
年龄:{年龄}
工作:{工作}
工资:{工资}'''.format(姓名=name,年龄=age,工作=job,工资=salary)

print(info_format)

# .format()案例
url = "https://www.nfu.edu.cn/"  # 学校官网域名
# 目标获取通知公告的所有url链接
通知公告 = "tzgg"
url_页面 = "htm"
url_页面细节不变 = "/index"

# for i in range(1,36):
#     完整的高教动态所有页面url = url+通知公告+ url_页面细节不变 + str(i)+url_页面
#     print(完整的高教动态所有页面url)

for i in range(1,36):
    完整的高教动态所有页面url = "https://www.nfu.edu.cn/{新闻}/index{页码}.htm".format(页码=str(i),新闻="tzgg")
    print(完整的高教动态所有页面url)


# .format()练习
url = "https://www.zcool.com.cn/"  # 站酷官网域名

# 目标获取站酷发现分类下的所有url链接

# cate=[精选=0,平面=8,插画=1,UI=17,网页=607,摄影=33,三维=24,影视=610,空间=609,工业/产品=499,动漫=608,纯艺术=612,手工艺=611,服装=613,其他=44]
discover_分类 = ['0','8','1','17','607','33','24','610','609','499','608','612','611','613','44']

# （废案）精选分类 = 'subCate=[运营设计=617,包装=9,动画/影视=30,人像摄影=34,商业插画=2,电商=616,APP界面=757,艺术插画=292,家装设计=637,海报=108,文章=809824]'
# （整不出单独分页码的废案）ym = ['100','100','100','100','100','100','100','46','75','59','97','73','57','10','19']

discover = 'discover?cate='
页码前缀 = '&page='

for i in discover_分类:
    for ym in range(1,11):
        # 完整的站酷发现分类所有页面url = url+ discover + discover_分类 + 页码前缀 + ym
        完整的站酷发现分类所有页面url = "https://www.zcool.com.cn/discover?cate={分类}&page={页码}".format(分类=i,页码=str(ym))
        print(完整的站酷发现分类所有页面url)


## 列表入门
# 列表中0代表第一个字符/第一个[]/、1代表第二个，以此类推。（# 列表是有顺序的一组值，顺序是从 0 位置开始的）
user_data = "zhiyu||yuyongkang||zhubi||linlin"
print(user_data[6])

# 引入列表
user_data_list = [["zhiyu",0,19],["yuyongkang",00,61],["zhubi",1,20],["linlin",10,0]]
# password_list = [0,00,1,10]
# age = [19,61,20,0]

# 1. 从左往右取值（index & slice）
print(user_data_list[3])

# 切片 slice ，右边的值取不到 例如[0:3] 索引为3的值取不到
print(user_data_list[0:3])

# 当从0开始取值时，0 可以忽略不写
print(user_data_list[:2])

# -3，-2，-1，0，1，2，3，4..
# 2. 从右往左取值(index & slice)
print(user_data_list[-2])

# 切片 slice ，右边的值取不到 例如[-3:-1] 索引为-1的值取不到
print(user_data_list[-3:-1])

# 如果取值为空：说明slice写错了 例如[-3:0]
# 如果要取到最后一个值，不能写0，直接省略不写
print(user_data_list[-3:0])  # 这是错误情况！！
print(user_data_list[-3:])  # 这是正确情况~~

# ****重要****
print(user_data_list[:])  # 列出列表全部内容

print(user_data_list[2:])
print(user_data_list[-1:1])
print(user_data_list[3:1])
print(user_data_list[-1:-3])  # 这种情况为错误（个人理解：左边的必须在左边，右边同）
# 步长，list列表slice ：[start:stop:step]
'''
如果没有指定开始值，则默认为0；
如果没有指定结束指，则取列表允许的最大值；
如果没有指定步长值，则默认步长为1.
'''
num = list(range(10))
print(num)
print(num[0:6:2])

'''
笔记：
列表总结
    1.列表总是用中括号[]包围，且列表中包含的对象之间总是用逗号,分隔
    2.列表中0代表第一个字符/第一个[]/、1代表第二个，以此类推。（# 列表是有顺序的一组值，顺序是从 0 位置开始的）
        eg：0,1,2,3
        * 当取值为负数时，则从右往左取值
    3.切片slice：
        * 右边的值取不到 例如[0:3] 索引为3的值取不到 
            值为负数时，例如[-3:-1]。索引为-1取不到
        * 0作为值时，可以忽略不写 例如[:6]
        * 如果要取到最后一个值，不能写0，直接省略不写
            eg：- 如果取值为空：说明slice写错了 例如[-3:0]
                - [:]、[-3:]
        * print(user_data_list[3:1])  
          print(user_data_list[-1:1])
          print(user_data_list[-1:-3])
            这种情况为错误（个人理解：左边的必须在左边，右边同）
    4.步长[start:stop:step]
        
'''
#  课本代码
vowels = ['a','e','i','o','u']
word = input("Provide a word to search for vowels:")
found = [] # 此处创建一个空列表
for letter in word:
    if letter in vowels:
        if letter not in found:
            found.append(letter)
for vowel in found:
    print(vowel)

